package com.distrimas.senta.servicios.comun;

public class Validador {

    private static final String alfanumericosPermitidos = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjKkLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvWwXxYyZz0123456789";
    private static final String letrasPermitidas = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjKkLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvWwXxYyZz";
    private static final String numerosPermitidos = "0123456789";
    private static final String especialesPermitidos = "AaÁáBbCcDdEeÉéFfGgHhIiÍíJjKkLlMmNnÑñOoÓóPpQqRrSsTtUuÚúÜüVvWwXxYyZz0123456789-#º.";


    public static boolean sinEspacios(String texto){
        if(texto==null){
            return false;
        }
        for(int i=0; i<texto.length(); i++){
            char ch = texto.charAt(i);
            if(Character.isSpaceChar(ch)){
                return false;
            }
        }
        return true;
    }

    public static boolean validarLetras(String texto){
        if(texto==null){
            return false;
        }
        String textoSinEspacios = texto.trim();
        for(int i=0; i<textoSinEspacios.length(); i++){
            char ch = textoSinEspacios.charAt(i);
            if(letrasPermitidas.indexOf(ch)==(-1) && !Character.isSpaceChar(ch)){
                return false;
            }
        }
        return true;
    }

    public static boolean validarNumeros(String texto){
        if(texto==null){
            return false;
        }
        String textoSinEspacios = texto.trim();
        for(int i=0; i<textoSinEspacios.length(); i++){
            char ch = textoSinEspacios.charAt(i);
            if(numerosPermitidos.indexOf(ch)==(-1) && !Character.isSpaceChar(ch)){
                return false;
            }
        }
        return true;
    }

    public static boolean validarAlfanumericos(String texto){
        if(texto==null){
            return false;
        }
        String textoSinEspacios = texto.trim();
        for(int i=0; i<textoSinEspacios.length(); i++){
            char ch = textoSinEspacios.charAt(i);
            if(alfanumericosPermitidos.indexOf(ch)==(-1) && !Character.isSpaceChar(ch)){
                return false;
            }
        }
        return true;
    }

    public static boolean validarEspeciales(String texto){
        if(texto==null){
            return false;
        }
        String textoSinEspacios = texto.trim();
        for(int i=0; i<textoSinEspacios.length(); i++){
            char ch = textoSinEspacios.charAt(i);
            if(especialesPermitidos.indexOf(ch)==(-1) && !Character.isSpaceChar(ch)){
                return false;
            }
        }
        return true;
    }

    public static boolean validarVacio(String texto){
        if(texto==null){
            return false;
        }
        String textoSinEspacios = texto.trim();
        if(textoSinEspacios.isEmpty()){
            return false;
        }
        return true;
    }

    public static boolean validarCantidad(Float cantidad){
        boolean result = false;
        try{
            if(cantidad>=0){
                result = true;
                String salario = Float.toString(cantidad);
                for(int i=0; i<salario.length(); i++){
                    char ch = salario.charAt(i);
                    if(numerosPermitidos.indexOf(ch)==(-1) && ch!='.'){
                        result = false;
                        break;
                    }
                }
            }
        }
        catch(Exception e){
            result = false;
        }
        return result;
    }

    public static boolean ValidarFechas(String texto){
        boolean result = false;
        String pos="";
        int numeros=0;
        if(texto==null){
            return false;
        }
        if(texto.length()<10){
            return false;
        }

        for(int i=0; i<texto.length(); i++){  
          char ch = texto.charAt(i);
           if((i==4 && ch!='-')||(i==7 && ch!='-')){
              result = false;
              break;
           }
           if((i!=4 && Character.isDigit(ch))||(i!=7 && Character.isDigit(ch))){
             numeros++;
           }
           if(numeros == 8){
             return true;
           }
         }
         return result;
    }



}
